home *** CD-ROM | disk | FTP | other *** search
/ Aminet 52 / Aminet 52 (2002)(GTI - Schatztruhe)[!][Dec 2002].iso / Aminet / gfx / show / swfplayersrc.lha / Player / cy.c < prev    next >
C/C++ Source or Header  |  1999-03-22  |  1KB  |  38 lines

  1. #ifndef PPC
  2.  
  3. #include <exec/types.h>
  4. #include <inline/stubs.h>
  5.  
  6. /*
  7.     PRH:
  8.  
  9.     GCC has problems with functions that have a large number of registerised
  10.     parameters.  This file is just a quick hack to get things to work
  11.     correctly.
  12. */
  13.  
  14. extern struct Library *CyberGfxBase;
  15.  
  16. ULONG WritePixelArray(APTR srcRect, UWORD SrcX, UWORD SrcY, UWORD SrcMod, struct RastPort *RastPort, UWORD DestX, UWORD DestY, UWORD SizeX, UWORD SizeY, UBYTE SrcFormat)
  17. {
  18.    register ULONG res __asm("d0");
  19.    register struct Library *a6 __asm("a6") = CyberGfxBase;
  20.    register APTR a0 __asm("a0") = srcRect;
  21.    register UWORD d0 __asm("d0") = SrcX;
  22.    register UWORD d1 __asm("d1") = SrcY;
  23.    register UWORD d2 __asm("d2") = SrcMod;
  24.    register struct RastPort *a1 __asm("a1") = RastPort;
  25.    register UWORD d3 __asm("d3") = DestX;
  26.    register UWORD d4 __asm("d4") = DestY;
  27.    register UWORD d5 __asm("d5") = SizeX;
  28.    register UWORD d6 __asm("d6") = SizeY;
  29.    register UBYTE d7 __asm("d7") = SrcFormat;
  30.    __asm volatile ("jsr a6@(-0x7e:W)"
  31.    : "=r" (res)
  32.    : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (a1), "r" (d3), "r" (d4), "r" (d5), "r" (d6), "r" (d7)
  33.    : "d0", "d1", "a0", "a1", "fp0", "fp1", "cc", "memory");
  34.    return res;
  35. }
  36.  
  37. #endif
  38.